import { login } from '@/api/user'
const state = {
  userInfo: {}, // 用于保存后台返回的数据
  token: localStorage.getItem('token') || ''
}
const mutations = {
  // 修改state中userInfo的数据
  setUserInfo(state, userInfo) {
    // 保存后台返回的数据
    state.userInfo = userInfo
  },
  // 修改state中userInfo的数据
  setToken(state, token) {
    // 保存后台返回的数据
    state.token = token
    // // 备份token持久化
    localStorage.setItem('token', token)
    // 登录成功时把时间戳存入（用于设置token有效时长）
    localStorage.setItem('timestamp', Date.now())
  },
  // // 清理token
  removeToken(state) {
    state.token = ''
    localStorage.removeItem('token')
  },
  // 封装清空userInfo
  removeUserInfo(state) {
    state.userInfo = {}
  }
}
const actions = {
  async login(store, loginForm) {
    // 调用接口发起请求，传入用户填写的表单, 手机号用户名
    const res = await login(loginForm)
    console.log('actions 正在调用', res)
    store.commit('setToken', res.data.jwt)
  },
  // 封装退出登录调用清空函数的函数
  logout(store) {
    store.commit('removeToken')
    store.commit('removeUserInfo')
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
